Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Data Control Block</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Data_Control_Block"> <link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Data_Control_Block rootpage-Data_Control_Block skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Data Control Block</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>
<p>In <a href="IBM_mainframe" title="IBM mainframe">IBM mainframe</a> <a href="Operating_system" title="Operating system">operating systems</a>, such as <a href="OS/360" class="mw-redirect" title="OS/360">OS/360</a>, <a href="MVS" title="MVS">MVS</a>, <a href="Z/OS" title="Z/OS">z/OS</a>, a <b>Data Control Block</b> (<b>DCB</b>) is a description of a <a href="Data_set_(IBM_mainframe)" title="Data set (IBM mainframe)">dataset</a> in a program. A DCB is coded in <a href="Assembly_language" title="Assembly language">Assembler</a> programs using the DCB macro instruction (which expands into a large number of "define constant" instructions). High level language programmers use library routines containing DCBs.
</p><p>A DCB is one of the many <i>control blocks</i> used in these operating systems. A <i>control block</i> is a data area with a predefined structure, very similar to a C <code>struct</code>, but typically only related to system's functions. A DCB may be compared to a FILE structure in C, but it is much more complex, offering many more options for various <a href="Access_method" title="Access method">access methods</a>.
</p><p>The control block acted as the <a href="Application_programming_interface" class="mw-redirect" title="Application programming interface">Application programming interface</a> between Logical <a href="IOCS" class="mw-redirect" title="IOCS">IOCS</a> and the <a href="Application_program" class="mw-redirect" title="Application program">application program</a> and usually was defined within (and resided within) the application program itself. The addresses of I/O subroutines would be resolved during a <a href="Linker_(computing)" title="Linker (computing)">linkedit</a> phase after compilation or else dynamically inserted at OPEN time.
</p><p>The equivalent control block for IBM <a href="DOS/360_and_successors" title="DOS/360 and successors">DOS/360</a>, <a href="DOS/VSE" class="mw-redirect" title="DOS/VSE">DOS/VSE</a> and <a href="Z/VSE" class="mw-redirect" title="Z/VSE">z/VSE</a> operating systems is a "DTF" (Define the file)
</p>
<div class="mw-heading mw-heading2"><h2 id="Typical_contents_of_a_DCB">Typical contents of a DCB</h2></div>
<ul><li>symbolic file name (to match a <a href="Job_Control_Language" title="Job Control Language">JCL</a> statement for opening the file)</li>
<li>type of access (e.g. random, sequential, indexed)</li>
<li>physical characteristics (<a href="Storage_block" class="mw-redirect" title="Storage block">blocksize</a>, logical record length)</li>
<li>number of <a href="I/O" class="mw-redirect" title="I/O">I/O</a> <a href="Data_buffer" title="Data buffer">buffers</a> to allocate for processing to permit overlap of I/O</li>
<li>address of <a href="I/O" class="mw-redirect" title="I/O">I/O</a> <a href="Operating_system" title="Operating system">operating system</a> <a href="Library_(computing)" title="Library (computing)">library subroutines</a> (e.g. read/write)</li>
<li>other variables as required by the subroutines according to type</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Prototype_DCBs">Prototype DCBs</h2></div>
<p>Many of the constants and variables contained within a DCB may be left blank (i.e., these default to zero).
</p><p>The OPEN process results in a <i>merge</i> of the constants and variables specified in the DD JCL statement, and the dataset label for existing magnetic tape and direct-access datasets, into the DCB, replacing the zero values with actual, non-zero values.
</p><p>A control block called the JFCB (Job File Control Block) initially holds the information extracted from the DD statement for the dataset. The results of the merge are stored in the JFCB which may also be written into the DSCB during the CLOSE process, thereby making the dataset definition permanent.
</p><p>An example is the BLKSIZE= variable, which may be (and usually is) specified in the DCB as zero. In the DD statement, the BLKSIZE is specified as a non-zero value and this, then, results in a program-specified LRECL (logical record length) and a JCL-specified BLKSIZE (physical block size), with the merge of the two becoming the permanent definition of the dataset.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Data_Set_Control_Block" class="mw-redirect" title="Data Set Control Block">Data Set Control Block</a> (DSCB), a part of VTOC</li>
<li><a href="Record-oriented_filesystem" title="Record-oriented filesystem">Record-oriented filesystem</a></li></ul>
<style data-mw-deduplicate="TemplateStyles:r1271159938">
/* start https://en.wikipedia.org/ */


.mw-parser-output .asbox{position:relative;overflow:hidden}.mw-parser-output .asbox table{background:transparent}.mw-parser-output .asbox p{margin:0}.mw-parser-output .asbox p+p{margin-top:0.25em}.mw-parser-output .asbox-body{font-style:italic}.mw-parser-output .asbox-note{font-size:smaller}.mw-parser-output .asbox .navbar{position:absolute;top:-0.75em;right:1em;display:none}.mw-parser-output :not(p):not(.asbox)+style+.asbox,.mw-parser-output :not(p):not(.asbox)+link+.asbox{margin-top:3em}


/* end https://en.wikipedia.org/ */
</style>
</div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2023-07-09" href="https://en.wikipedia.org/wiki/?title=Data_Control_Block&amp;oldid=1164553172">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>